23

» WarCraft 3 / Юнит цель применяемой способности

Похожие вопросы:

ответ
А касательно остальной части, если UnitUserData нигде не используется, создаешь массив юнитов и отрядов. Массив юнитов забиваешь своими капитанами. В UnitUserData капитана пихаешь его порядковый номер в массиве. Создаешь группу юнитов для этого капитана.
  1. Добавление через каст способности.
Я бы делал через 2 разные абилки с одной и той же позицией в интерфейсе. Пока нужный тебе юнит не является частью отряда - у него таргетная абилка при касте которой на капитана он добавляется в группу соответствующего капитана и получает 2ю абилку взамен первой.
Касательно выделения этих пехотинцев - можно намутить что-то с передачей контроля или создать триггер, который будет снимать выделение с юнитов у которых есть 2я абилка. Если ты хочешь чтобы по одиночке можно было выделять пехотинцев - можешь создать переменную для каждого игрока с капитанами, куда будет просто записываться последний выбранный юнит. При снятии выделения - проверять не выбран ли этот же юнит, в случае чего не снимать выделение. Правда не уверен будет ли корректно работать :> В крайнем случае - будет работать в три клика вместо двух. Если я не ошибаюсь.
Касательно поведения этих пехотинцев - что-то реально стоящее сделать сложно. Возможно, но мне не с руки все расписывать :> Простейший вариант - приказывать пехотинцам после добавления в группу следовать за капитаном.
  1. Добавление через атаку капитана
Триггер, проверяющий что капитан получил урон или атакован, как угодно. Далее любым способом проверяешь есть ли в группе этого капитана юниты. Если нет - выбираешь всех пехотинцев N радиусе, добавляешь в отряд, заменяешь абилку/либо просто приказываешь кастануть в капитана первую абилку.
ответ
bifurcated, вот сделал наработку что то в роде того что ты хочеш только желательно доработать... но с этим сам почитай статьи
ах забыл рекомендую делать подобные скилы на основе "Канал"
ответ
Так Рёв - это способность без конкретной цели.
Можно ловить юнитов в радиусе и проверять у них наличие баффа от способности.
ответ
Все получилось. Спасибо всем за помощь)

23

» WarCraft 3 / Скилл на неуязвимость

Похожие вопросы:

ответ
Если юнит под баффом "чума" - добавить в отряд Чума
Иначе - удалить из отряда Чума
Триггер
С. Таймер Чума
Отряд выбрать юнитов Чума
Если юнит умер
Д. создать юнита в позиции выбранного юнита.
ответ
ну попробуй так
перед созданием сбрось флаг
set a=GetUnitUIDefByIdCaching(unitid)
if a>0 then
call WMem(a+0xB8,0)
endif
после создания единицу обратно пишешь, должно сработать

23

» WarCraft 3 / Как спрятать интерфейс?

Похожие вопросы:

ответ
импортируй этот файл в карту и пропиши ему путь "units\CommandFunc.txt"
Данным способом можно убрать "Патруль" у всех юнитов на карте без исключения

для тех кому интересно, как это сделано
[CmdPatrol]
Art=CommandPatrol
Buttonpos=0,-11
и ссылочка на статью на хайве

23

» WarCraft 3 / CASC

Похожие вопросы:

ответ
видимо никто.
ответ
Простой ответ - никак. Близы не планируют поддержку чего-то выходящего за рамки отдельной карты или кампании.
Сложный ответ - надоедать близам чтобы завезли такую возможность.

23

» WarCraft 3 / Модель дамми

Похожие вопросы:

ответ
Steal nerves:
раскрыть
local unit u= //кастер
local real x1=GetUnitX(u) //координаты кастера
local real y1=GetUnitY(u)

local unit t= //дайми
local real x2=GetUnitX(t)
local real y2=GetUnitY(t)

//определение расстояния
local real dx=x2-x1 //разница между концом на началом координаты
local real dy=y2-y1
local real dist = SquareRoot(dx * dx + dy * dy) //расстояние, где SquareRoot - математический корень, dx * dx - это dx в степени 2

local real angle = Atan2(dy,dx) //текущий угол между двумя точками (юнитами) в градусах

//если вы хотите текущий угол изменить, то можно изменить angle прибавив или убавив значение на несколько градусов
set angle = angle + 30. //например прибавляешь 30 градусов

set x = x + dist * Cos(angle * bj_DEGTORAD)
set y = y + dist * Sin(angle * bj_DEGTORAD)
ответ
В редакторе скелета
ответ
как-то делается, но тонкостей дохера - нельзя иметь регионы на карте, чтобы это работало, нельзя иметь события на unitInRange, и тд. и тп. Проще говоря - обломись, дешевле сделать статичный магаз где-то в неиспользуемой зоне
ответ
~8gabriel8:
ПРАВИЛА ЗАПРЕЩАЮТ НЕСКОЛЬКО ВОПРОСОВ ОДНОВРЕМЕННО!!!
Это для того сделано, чтобы бот на каждый вопрос мог показать уже решённые варианты, если сформулирован вопрос нормально, конечно. А ещё это позволит другим пользователям с аналогичными вопросами увидеть ответы на твои.
1. Можно в РО отключить урон юниту и триггерами просчитывать, кто находится перед ним в момент атаки, им будет наноситься урон.
1.5. Не понимаю проблемы, с чего это ты переключаешься на муху, атакуя огромного лорда склепа?
2. Способность Каменные доспехи Ночных Эльфов.
3. И да, и нет. Стандартными средствами сможешь убрать карту через перерисовку интерфейса, разработать и добавить новые кнопки в пул из 12, но для расширения пула или инвентаря потребуются хитрые системы, типа мемхака или DGUI, но не пользовался ими, потому не подскажу, как именно там надо действовать.
4. Можно либо отлавливать урон и прибавлять здоровье, либо делать морф в неуронящего юнита.
5. Не знаю, как именно сделано в Blade of Darkness, но есть событие на нажатие кнопок со стрелками, есть действие на переключение камеры. Просто почитай статью о работе с камерой.
6. У камеры в свойствах есть угол обзора, первую камеру ставишь вниз с углом обзора вверх, что можешь увидеть, поставив галочку в свойствах камеры, вторую камеру поднимаешь вверх и наклоняешь вниз, а в триггере ставишь применить первую камеру в течении 0 секунд, ждать 2 секунды, применить вторую камеру в течении 5 секунд, так обзор будет подниматься в положение второй камеры, ждать 5 секунд.

23

» WarCraft 3 / Как сделать моментальную атаку

Похожие вопросы:

ответ
Через дамми-каст:
Создаешь пустышку с описанием и передаешь ее герою.
При касте этого спелла создаешь даммика(невидимого/пустого юнита с нужными способностями) и кастуешь нужный спелл.
Дамми при этом занят кастом спелла, а герой может делать все что угодно

23

» WarCraft 3 / вероятность в триггерах

Похожие вопросы:

ответ
Ухаха. Парень, ознакомься, что такое утечки, прикрепление в помощь.
ответ
Ну, перенеси всё это clawbfs.ucoz.ru/forum/3-2-1 и итемы и две игровые карты с кучей режимов и сотни шапок и т. д. + в 2 раза больше новых идей clawbfs.ucoz.ru/forum/7 clawbfs.ucoz.ru/forum/16-1571-1 clawbfs.ucoz.ru/forum/9 со всеми функциями варкрафта (а их там всё же не так уж и мало) в игру на юнити или ещё куда в один присест, сделай дело доброе.
Бтв, про сбор команды - для продвинутых сущностей нередко исправлять за другими оказывается тяжелее, чем делать самому, важно создать максимально комфортные условия для созидания, вот для чего деньги не лишние, а уж дело и самому можно делать.
И, да, тема-то не про то, надо это или не надо, а про то, как лучше это сделать, я про это и в стартовом сообщении написал.
Я на крайний сам вопрос по варианту 3 проверю и/или будет сделан выбор между третьим вариантом, вторым, каким-то ещё и отказом от Cooldown Reduction, но если кто поможет - спасибо.
ответ
идем читать статьи
ищем фразы - запретить заклинание, спелл бук, триггеры
ответ
Лимит операций, обычно это беда настигает заядлых гуишников.
На jass обычно нету таких проблем.
Создайте таймер с периодом .00 сек и запускайте им функции инициализации триггеров.
функция типа InitTrig_Имя триггера - это функция инициализации триггера, она вызывается из функции InitCustomTriggers, но если этих вызовов очень много то функция упирается в лимит операций и поток завершается так и не создав все триггеры.
ответ
нормальный в варкрафте рандом, это человек делает микроскопическую выборку и удивляется результатам

23

» WarCraft 3 / помогите изучить картостроение

Похожие вопросы:

ответ
должен сразу предупредить что делать за тебя никто не будет
теперь по твоим вопросам
  1. чтобы нельзя было кликать скрываешь, даёшь москиты, делаешь видимым
  2. действие проиграть звук и указываешь твою фразу
  3. выбираем всех подходящих(враги,живые) юнитов в радиусе от точки каста и создаём по дамми юниту(юнит без модели, без атаки, с москитами, с нужной способность, время жизни юнита 1 сек) для каждого подходящего юнита приказывая дамми юниту применить нужную способность в подходящего юнита
таким образом каждый дамми юнит применит нужную способность (в твоём случае корни) в 1 подходящего юнита для которого он и был создан а потом исчезнет
  1. система отлова урона
  2. морф юнита либо орбы
всё что я не описал есть в статьях
тебе нужны первые 2 раздела ("Основы" и "Триггеры и объекты")
ответ
Вопросы - не стол заказов.
ответ
quq_CCCP:
Darknessay:
Ничего не понятно, но если не работает пеший в пешего, почему не пеший>летающий>пеший - использовать посредника?
Ващето пеший в пешего работает но не так, альт форма дамми юнит, нормальная форма тот в кого хотим превратится, основа перевоплощение, все параметры в 0.
Я думаю, тебе стоит переписать свою темку на другом языке, ибо не отвечают потому что не понимают.
ответ
ответ
Если я правильно помню, можно отследить, становиться ли золото больше определенного значения. Итак:
  • пишем текущее значение в переменную;
  • создаем триггер, который срабатывает, если значение золота становиться больше переменной.
Если триггер сработал:
  • находим разницу;
  • добавляем еще столько же;
  • обновляем переменную;
  • возможно. придется пересоздать триггер.
Также переменную придется обновлять при покупке юнитов, улучшений и прочего, то есть, при трате золота.

23

» WarCraft 3 / Ограничение для предметов

Похожие вопросы:

ответ
  1. В кампании орды за Рекксара медведь призывается без ограничения по времени.
  2. Любая способность призыва, в которой указать количество призываемых юнитов = 0.
ответ
Steal nerves:
ответы
Как объединить зелья лечения в одно с зарядом, если герой имеет одно в инвентаре и поднимает второе?
обычно используют "событие - юнит получает предмет", И на предмет, который вы получаете, ссылается переменная, которая называется item being manipulated. А юнит, который получает итем - Triggering Unit. Вы можете с помощью этой переменной итема узнать тип, сравнить. Потом циклом пробегаете по слотам (от 1 до 6), тут вся суть в одной команде триггерной (item in slot X, итем в слоте Х) и проверяете есть ли такой же итем (не забываем делать проверки, на то что этот предмет не равен item being manipulated и сравниваете не одинаковые ли типы). Если есть такой же (находите тот же тип что и item being manipulated), то от item being manipulated берете заряды и прибавляете к зарядам существующего, а потом item being manipulated удаляете. Недостаток: при заполненном инвентаре такая штука не будет работать.Не хватает свободного места.
код
цикл А от 1 до 6
if тип итема (item being manipulated) РАВНО тип итема (item in slot А) and item being manipulated НЕ РАВНО item in slot А then проверяете
set k = Charges remaining in ( item being manipulated) + Charges remaining in ( item in slot А) складываете заряды
Set charges remaining in ( item in slot А) to ( k) устанавливаете кол-во зарядов
Remove Item (item being manipulated) удаляете
endif
Есть гуишная проверка на наличие итема определенного типа в инвентаре, но она утечна. И лучше циклом прогонять.
Кстати выше пример, там вот дропают итем, зачем? чтобы проверить есть ли такой же итем. А то мб проверка на наличие итема определенного типа в инвентаре найти подобранный итем. А нам нужно знать, что есть еще один, кроме подобранного. Поэтому дропают. Только не понятно зачем создаете новый итем.
Проверка, на то что подобранный предмет имеет зарядов больше 0, говорит нам о том что это не обычный предмет.
есть статьи
Как зелье с зарядом разделить, если игрок перекладывает зелье с зарядом в другую ячейку инвентаря, если возможно, то разделение происходить должно только при нажатии какой-то клавиши?
можно перекладывать в другой слот. для этого ловят приказ. Короче смотрите системы CCS
там создают новый такой же предмет, и выделяют кол-во зарядов, деля поровну например. Абилкой например, попробуй сделать целевую активную абилку с целью предмет, указывай на инвентарь и дели.
Как это можно сделать покороче для множества разных типов предметов?
всмысле покороче? сделать под одну группу? есть же классификация. Я вот делаю так, что все предметы, которые с зарядами, должны иметь классификацию "с зарядами". Не помню точно как называется класс итемов.
Как правильно реализовать в инвентаре 7 слот?
если у героя заполнен инвентарь, то он может подобрать руну. Вот в доте система скрещивания. То же самое можно сделать и с зарядами. На земле у него лежат руны, при подборе руна исчезает. Но мы проверяем слоты, есть ли такой итем. Если есть, прибавляем заряды к существующему. Иначе создать новый. При дропе итема, оригинал подменяет снова на руну. В руну можно передать значения зарядов.
А также ограничения какие-то на количество зарядов нужно ставить или сама система выше какой-то планки не даст собирать?
до такого не доходил.
скинул примеры (хотя многие дурацкие, но делал здесь хгм в качестве ответов)
вот еще одна система hh
ответ
Рабочий лимит предметов на гуях есть в конфетных войнах близзардов, скопируйте от туда...
ответ
Name Legion:
меня не волнует уровень героя я хочу убрать этот предмет если их больше 2..уровень предмета то да..по другому я не вижу...вопрос в не в этом вопрос в том что увеличить а что убрать
пример взял отсюда
Item System
Events
Unit - A unit Acquires an item
Conditions
Actions
Set Item = 0
For each (Integer Slot_Integer) from 1 to 6, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Item level of (Item carried by (Hero manipulating item) in slot Slot_Integer)) Equal to (Item level of (Item being manipulated))
Then - Actions
Set Item = (Item + 1)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Item Greater than 1
Then - Actions
Hero - Drop (Item being manipulated) from (Hero manipulating item)
Game - Display to (All players) for 5.00 seconds the text: Can't carry more th...
Else - Actions
решил вопрос....я проверял сколько предметов такого типа предмета и 2 убрал...написал так чтобы он понимал только этот тип предмета....теперь он правильно работает....надеюсь и другим этот триггер поможет в реализации..правда его надо доработать ну тем не менее
вот
тип переменной
ответ
Name Legion:
а почему именно любой? я же прописал какой предмет нужно удалить и с каким нужно работать
ну я так и делаю...только почему то он не понимает
яяяя не знаю в чем ошибка...и по другому сделал и так и сяк и никак..он все равно уничтожает предмет....мне нужно конкретно знать где он останавливается и решить этот вопрос...
может ошибка в других триггерах?..я так не думаю...он же по любому должен увидеть уровень... да даже если я уберу hero manipulating item и оставлю только кол-во предметов он все равно уничтожит...мне нужно только 2 уничтожить а не все предметы такого типа...черт его знает
да и так пробовал...уничтожает через раз предметы..1 подбирал остается 2 подобрал уничтожает 3 взял подбирается 4 уничтожается и так до бесконечности
и этот цикл убрал...from 1 to 6....тоже нет
может убрать эту огромную строчку и тупо уничтожить предмет из item caried by hero manipulating item of type?
решил вопрос...не хватало одно if all condition are true при условии что срабатывает ИНАЧЕ при первом подбирание предмета...ИНАЧЕ НЕ ТРОГАТЬ...а то условие срабатывало как ТО и ИНАЧЕ...не хотела проходить дальше вот и уничтожало предмет..обошлось малой кровью...я забыл что одно условие не может проверить что нужно если не прописать это
выкладываю мою систему систему...теперь она правильно работает...

23

» WarCraft 3 / Краш карты

Похожие вопросы:

ответ
приложи лучше .txt файл с крашем из папки /errors
ответ
biridius:
скинь хоть сам файл ошибки, из папки Errors (в папке с варом) там текстовые файлы, найди с нужной датой/временем
иначе ничего не понятно
Может расскажите лучше как я сам с этим текстовым файлом смогу решить эту проблему)?
+ я там сверху кусок скинул
Кароче - вот

x86 Registers

EAX=00000000 EBX=00000000 ECX=0EEA0020 EDX=0EEAE0A8 ESI=001985EC
EDI=00000000 EBP=0EE70088 ESP=0019842C EIP=00000000 FLG=00010202
CS =0023 DS =002B ES =002B SS =002B FS =0053 GS =002B

Stack Trace (Manual)

Address Frame Logical addr Module
00000000 0EE70088 0000:00000000 C:\Program Files (x86)\WarCraft III - 1.26\war3.exe

Stack Trace (Using DBGHELP.DLL)

6F45862F Game.dll GameMain+4517343 (0x00000000,0x00000000,0x00000000,0x00000000)

Loaded Modules

0x00400000 - 0x0047D000 C:\Program Files (x86)\WarCraft III - 1.26\war3.exe
0x15000000 - 0x15061000 C:\Program Files (x86)\WarCraft III - 1.26\Storm.dll
0x21100000 - 0x2115F000 C:\Program Files (x86)\WarCraft III - 1.26\mss32.dll
0x22600000 - 0x22616000 C:\Program Files (x86)\WarCraft III - 1.26\redist\miles\Mssfast.m3d
0x22700000 - 0x22717000 C:\Program Files (x86)\WarCraft III - 1.26\redist\miles\Mssdolby.m3d
0x22C00000 - 0x22C18000 C:\Program Files (x86)\WarCraft III - 1.26\redist\miles\Msseax2.m3d
0x24600000 - 0x24611000 C:\Program Files (x86)\WarCraft III - 1.26\redist\miles\Reverb3.flt
0x26F00000 - 0x26F2A000 C:\Program Files (x86)\WarCraft III - 1.26\redist\miles\Mp3dec.asi
0x60000000 - 0x6005D000 C:\Program Files (x86)\WarCraft III - 1.26\ijl15.dll
0x63EB0000 - 0x647DB000 C:\WINDOWS\System32\DriverStore\FileRepository\c0318486.inf_amd64_11ba0b4b7cc81d52\atiumdag.dll
0x647E0000 - 0x6487B000 C:\WINDOWS\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.9348_none_d08c1480442bf1e1\MSVCR80.dll
0x64AC0000 - 0x64B4E000 C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.16299.64_none_2c284a8117b59840\COMCTL32.dll
0x669D0000 - 0x66B4B000 C:\WINDOWS\System32\DriverStore\FileRepository\c0318486.inf_amd64_11ba0b4b7cc81d52\aticfx32.dll
0x66FB0000 - 0x66FD6000 C:\WINDOWS\SYSTEM32\cryptnet.dll
0x66FF0000 - 0x66FF6000 C:\WINDOWS\SYSTEM32\detoured.dll
0x67000000 - 0x67020000 C:\WINDOWS\SYSTEM32\amdihk32.dll
0x679C0000 - 0x679E7000 C:\WINDOWS\System32\DriverStore\FileRepository\c0318486.inf_amd64_11ba0b4b7cc81d52\atiu9pag.dll
0x67A80000 - 0x67A88000 C:\WINDOWS\SYSTEM32\AVRT.dll
0x67A90000 - 0x67AEB000 C:\WINDOWS\System32\MMDevApi.dll
0x67AF0000 - 0x67BE4000 C:\WINDOWS\SYSTEM32\AUDIOSES.DLL
0x67BF0000 - 0x67C12000 C:\WINDOWS\System32\DEVOBJ.dll
0x6C190000 - 0x6C1AE000 C:\WINDOWS\SYSTEM32\gpapi.dll
0x6C1B0000 - 0x6C1DF000 C:\WINDOWS\system32\rsaenh.dll
0x6C280000 - 0x6C30C000 C:\WINDOWS\SYSTEM32\CoreMessaging.dll
0x6C310000 - 0x6C544000 C:\WINDOWS\SYSTEM32\CoreUIComponents.dll
0x6C550000 - 0x6C5C7000 C:\WINDOWS\SYSTEM32\TextInputFramework.dll
0x6C5D0000 - 0x6C69E000 C:\Windows\System32\Windows.UI.dll
0x6E0D0000 - 0x6E19B000 C:\WINDOWS\SYSTEM32\wintypes.dll
0x6F000000 - 0x6FBB5000 C:\Program Files (x86)\WarCraft III - 1.26\Game.dll
0x70BB0000 - 0x70C66000 C:\WINDOWS\SYSTEM32\d3d8.dll
0x70DF0000 - 0x70DF8000 C:\WINDOWS\SYSTEM32\WINNSI.DLL
0x712B0000 - 0x7138F000 C:\WINDOWS\SYSTEM32\OPENGL32.dll
0x71C40000 - 0x71C65000 C:\WINDOWS\SYSTEM32\GLU32.dll
0x71C70000 - 0x71CF0000 C:\WINDOWS\SYSTEM32\DSOUND.DLL
0x72000000 - 0x72007000 C:\WINDOWS\SYSTEM32\d3d8thk.dll
0x726B0000 - 0x726D3000 C:\WINDOWS\system32\dwmapi.dll
0x72710000 - 0x72789000 C:\WINDOWS\system32\uxtheme.dll
0x72790000 - 0x72A54000 C:\WINDOWS\SYSTEM32\WININET.dll
0x72BE0000 - 0x72C35000 C:\WINDOWS\SYSTEM32\mswsock.dll
0x73980000 - 0x73AFA000 C:\WINDOWS\System32\PROPSYS.dll
0x73C50000 - 0x73C63000 C:\WINDOWS\SYSTEM32\CRYPTSP.dll
0x73CE0000 - 0x73D08000 C:\WINDOWS\SYSTEM32\ntmarta.dll
0x73D10000 - 0x73D34000 C:\WINDOWS\SYSTEM32\dbgcore.DLL
0x73D40000 - 0x73EC1000 C:\WINDOWS\SYSTEM32\dbghelp.dll
0x73F30000 - 0x73F49000 C:\WINDOWS\SYSTEM32\bcrypt.dll
0x73F50000 - 0x73F80000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
0x74240000 - 0x74263000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll
0x742D0000 - 0x742F4000 C:\WINDOWS\SYSTEM32\WINMM.dll
0x74370000 - 0x74378000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
0x743A0000 - 0x743A8000 C:\WINDOWS\SYSTEM32\VERSION.dll
0x743B0000 - 0x743BA000 C:\WINDOWS\System32\CRYPTBASE.dll
0x743C0000 - 0x743E0000 C:\WINDOWS\System32\SspiCli.dll
0x743E0000 - 0x74423000 C:\WINDOWS\System32\sechost.dll
0x74430000 - 0x74500000 C:\WINDOWS\System32\KERNEL32.DLL
0x74500000 - 0x74522000 C:\WINDOWS\System32\GDI32.dll
0x74530000 - 0x74575000 C:\WINDOWS\System32\SHLWAPI.dll
0x74580000 - 0x74587000 C:\WINDOWS\System32\NSI.dll
0x74590000 - 0x74767000 C:\WINDOWS\System32\KERNELBASE.dll
0x747D0000 - 0x748E7000 C:\WINDOWS\System32\ucrtbase.dll
0x748F0000 - 0x7496C000 C:\WINDOWS\System32\msvcp_win.dll
0x74970000 - 0x74AB4000 C:\WINDOWS\System32\MSCTF.dll
0x74AC0000 - 0x74ACE000 C:\WINDOWS\System32\kernel.appcore.dll
0x74AE0000 - 0x74B46000 C:\WINDOWS\System32\WS2_32.dll
0x74B50000 - 0x74CD2000 C:\WINDOWS\System32\CRYPT32.dll
0x74CE0000 - 0x74CEE000 C:\WINDOWS\System32\MSASN1.dll
0x74CF0000 - 0x74DAD000 C:\WINDOWS\System32\msvcrt.dll
0x74DB0000 - 0x74DF6000 C:\WINDOWS\System32\WINTRUST.dll
0x74E00000 - 0x74F5F000 C:\WINDOWS\System32\gdi32full.dll
0x74FC0000 - 0x762F3000 C:\WINDOWS\System32\SHELL32.dll
0x76360000 - 0x76457000 C:\WINDOWS\System32\ole32.dll
0x76460000 - 0x764B7000 C:\WINDOWS\System32\bcryptPrimitives.dll
0x764C0000 - 0x76538000 C:\WINDOWS\System32\ADVAPI32.dll
0x76540000 - 0x765C8000 C:\WINDOWS\System32\shcore.dll
0x765D0000 - 0x76816000 C:\WINDOWS\System32\combase.dll
0x76820000 - 0x768F4000 C:\WINDOWS\System32\comdlg32.dll
0x76900000 - 0x769BE000 C:\WINDOWS\System32\RPCRT4.dll
0x76F60000 - 0x76F74000 C:\WINDOWS\System32\profapi.dll
0x76FB0000 - 0x76FE8000 C:\WINDOWS\System32\cfgmgr32.dll
0x76FF0000 - 0x775B6000 C:\WINDOWS\System32\windows.storage.dll
0x775C0000 - 0x775D6000 C:\WINDOWS\System32\win32u.dll
0x775E0000 - 0x77755000 C:\WINDOWS\System32\USER32.dll
0x777F0000 - 0x77872000 C:\WINDOWS\System32\clbcatq.dll
0x77880000 - 0x778C5000 C:\WINDOWS\System32\powrprof.dll
0x778D0000 - 0x778F5000 C:\WINDOWS\System32\IMM32.dll
0x77900000 - 0x77993000 C:\WINDOWS\System32\OLEAUT32.dll
0x779A0000 - 0x77B2D000 C:\WINDOWS\SYSTEM32\ntdll.dll
дальше уже - Memory Dump
Так... Щас обнаружил что это у меня такая херня со всеми картами которые я сохранял в невгене... ВСЕ запутанее и странееее...
Проблема решилась переустановкой редактора повторным сохранением карты. Дело было в конфликте программы мусорщика ВСЕМ СПС.
ответ
Опытным путем, спустя второй день нервов, нашел выход. Я снова импортировал текст в карту, и она перестала крашиться. Почему отсутствие текста влияло на неё, не знаю.
ответ
Разобрался в чем была проблема. Нашел методом исключения.

23

» WarCraft 3 / Иконки выбора героев

Похожие вопросы:

ответ
ssbbssc, WarSC, оба офнитесь
фигню несёте
судя по тому что написал афтар ему нужен чит позволяющий ему строить любого героя
но триггеров он не знает
поэтому сначала читаем статьи
потом делаем триггер
событие - игрок вводит текст -cheat
действие - создать триггерному игроку строителя способного строить особый алтарь
простейший триггер
ответ
Автор где-то накосячил. В прикрепленной карте два героя. Один из них - невыделяемый. Когда горный король получает приказ стоп - он и второй герой получают +1 очко способностей. Отдавая приказ удержания позиции - -1 очко способностей. Это дело исправно отображается на их боковых иконках.
Триггеры созданы при помощи триггерного GUI и, при этом, явно не без помощи индуса. Искать ошибку кому-либо кроме автора в нем - не рентабельно. (по факту - это проще переписать. Но у гуишников это занимает много времени, да)
ответ
8gabriel8:
Daniil33, вот заготовка для триггера:
Поясняю его
Сначала юнитам назначаются переменные, для этого есть массив unit. Массив-это множество переменных, которые разделяются с помощью индексов. Потом выбирается вампир с помощью переменной vamp, для этого vamp=unit со случайным индексом от 0 до 7. Потом в переменную vamp_player заносим игрока, который владеет будущим вампиром, это потребуется как для назначения союза с 12 игроком, так и для будущих действий. Через 20 секунд сделай что-нибудь типа засыпания паладинам, например, дай им Гоблинский телескоп с отрицательным увеличением поля зрения, дальше назначается союз vamp_player с Игрок 12. Если анимация кровавого взрыва при превращении в вампира не та, меняй. Не знаю, что ты задумал с войсками, потому просто создал рядом с вампиром четырёх скелетов. Ну и там дальше ожидание до момента, пока минимум один из юнитов других игроков не умрёт, если умер, то вампир превращается обратно в того, кем был.
Спасибо,помог сделать.

23

» WarCraft 3 / Как удалить героя из выбора таверны

Похожие вопросы:

ответ
так?
ответ
Master_Battle, во первых не юзайте вейты, во вторых все должно работать, просто через KillUnit(), попробуйте ApplyTimedLife на 0.25 сек.
ответ
фатал на GetTrigger* че-то там
ааа, это у тебя в Player() попало что-то отличное от 0-15, потому и вылет

23

» WarCraft 3 / Как сбросить способности героя?

Похожие вопросы:

ответ
~8gabriel8:
Запрещено создавать несколько вопросов в одном. Бот мог бы выдать к каждому вопросу аналогичные вопросы, которые уже задавались и были решены, а так выдал ерунду какую-то. Можно сделать всех юнитов героями, убрать у них пиктограмму в левой верхней части экрана и добавить триггер, если юнит умирает, который не относится к настоящим героям, то сменить владельца на какого-нибудь нейтрала.
Покупка способностей делается через способность Техника, поищи на сайте более подробное описание.
Возможность выделить много юнитов, как одного есть, но это очень сложный костыль надо делать. Да и не факт, что получится чисто. Надо делать модель круга выделения, делать триггер, который отлавливает выбор игрока и при наличии нужного количества однотипных юнитов убирает из выбора остальных, дав им модель круга выделения, другой триггер будет отлавливать все приказы выбранному юниту и отдавать их псевдовыбранным, третий триггер будет выделение снимать.

23

» WarCraft 3 / способность рывок

Похожие вопросы:

ответ
function GetDirection takes unit u, unit targ returns int
         local real alpha = GetUnitFacing(u)
         local real gamma = bj_RADTODEG * Atan2(GetUnitY(targ)-GetUnitY(u), GetUnitX(targ)-GetUnitX(u))
          if gamma < 0 then
            set gamma = 360. + gamma
          endif
          if (alpha < 180. and not(gamma > alpha and gamma < alpha + 180.)) or (alpha > 180. and gamma > alpha - 180. and gamma < alpha) then
            return 2
          else
            return 1
          endif
    endfunction
1 право, 2 лево, вроде бы
и обнулять реал это мощно... и хеш таблица не корректно используется...
ответ
Используй способность "ракеты" с изменённой моделью дальной атаки на огненные стрелы и запихни её в книгу заклинаний.
И дай эту книгу даммику.
ответ
Сделал набросок, используя редактор триггеров. Не забудьте включить автоматическое создание неизвестных переменных в редакторе, когда будете переносить триггеры.
Если хотите плавные анимации, то пишите на Jass.
ответ
Загугли "Jass New Gen Pack Rebuild", вылезет ссылка на сайт xgm (то есть на этот сайт) с постом о нужном тебе редакторе.
ответ
XGM Bot:
Похожие вопросы:

ответ
Используй способность "ракеты" с изменённой моделью дальной атаки на огненные стрелы и запихни её в книгу заклинаний.
И дай эту книгу даммику.
ответ
Сделал набросок, используя редактор триггеров. Не забудьте включить автоматическое создание неизвестных переменных в редакторе, когда будете переносить триггеры.
Если хотите плавные анимации, то пишите на Jass.
ответ
Да, будут баги. Чтобы их не было, сделай переменную name caster с массивом.
ответ
Если перемещать юнита периодично по координатам, а не точкам, ему нельзя будет отдать приказ перемещаться. При этом можно проигрывать нужную анимацию по индексу. Так устроенны системы перемещения на стрелках, но это можно применить и в данном случае.
Конечно, понадобятся дополнительные проверки, вроде не оглушён ли юнит и т.д.
ответ
Загугли "Jass New Gen Pack Rebuild", вылезет ссылка на сайт xgm (то есть на этот сайт) с постом о нужном тебе редакторе.


23

» WarCraft 3 / Tooltip предмета

Похожие вопросы:

ответ
Насколько помню можно, но не в текущей реализации мемхака, то там будут баги со строками, а новые функции для работы со строками лич пока не подогнал.

23

» WarCraft 3 / Опыт за юнитов

Похожие вопросы:

ответ
убираем опыт за врагов и нейтральных в константах и пишем свою систему опыта
ответ
При убийстве дракона поставить проверку условия, что убивающий юнит принадлежит красному игроку.
А в действиях - 2 варианта.
Вариант 1. Триггерно уменьшить опыт убивающему герою на количество, равное данному за убийство.
Но если уровень повысится - точно не знаю, сработает ли.
Вариант 2. Убрать в РО опыт за убийство и добавлять его убивающему герою триггерно.
Лучше использовать второй.
WarSC:
Легко
Так написал бы ответ, раз легко )
Человек за помощью обратился всё же.
ответ
Игрок -> и там поищи.
ответ
~8gabriel8:
Посмотри в игровых константах, скорее всего там есть. А так мне приходит в голову вариант триггерный, когда все появляющиеся на карте юниты заносятся в триггер отлова урон, где два проверочных условия: источник урона-здание, наносимый урон больше или равен текущему здоровью, а в действии нанести этот урон от лица героя, владелец которого соответствует источнику урона.
ответ
~8gabriel8:
Можешь триггерно давать опыт, для этого в таблице опыта ставишь 0, героев помещаешь в группу, в триггере событие юнит умирает, в условии юнит - враг, в действии в группе героев даёшь опыт.

23

» WarCraft 3 / Тип уклона

Похожие вопросы:

ответ
ssbbssc, похоже, много читать придётся. Раз такие вопросы.
ответ
заменить текстуру клифа
но она тогда заменится для всех клифов на карте
так чтобы на 1 половине были клифы с зелёной текстурой а на 2 с красной сделать нельзя

23

» WarCraft 3 / алгоритм расположения объектов в квадрате

Похожие вопросы:

ответ
Daniil18, если не знаеш не пиши не по тему!
Нашел буду мучать его в варик делать digspt.ru/topics/32
ответ
Причину нашел что раньше было "xe_RAWCODE_FOOD *-* count" поэтому давали не правильно, но путем поиска нашел причину и исправил на *+*
ответ
Я бы определял принадлежность центров квадрата некой окружности. Не так интуитивно-однозначно как проверка принадлежности всех точек квадрата окружности, но гораздо удобнее с точки зрения реализации. Далее для каждой строки поочередно прогоняем алгоритм заливки(в случае, если заливка подразумевает заливку текстурой почвы - стоит учитывать что каждый квадрат почвы имеет размеры 32/32 и центры мелких квадратиков имеют смещение в 16.), закрашивая почву в пределах новоопределенных ректов. Поочередно построчно, т.к. возможно у вас возникнет ситуация черное-белое-черное-белое и вторая строка (если весь массив прогонять подряд, а не построчно) начнется с черного квадрата. Не вижу каких-либо вытекающих неудобств при разработке..
ответ
Да как хочешь, главное, чтобы тебе и игрокам удобно было. Можно все коэфициенты складывать (то есть броня снижает на 40%, от огня защита 10%, итого урон от огня снижается на 50%), а можно перемножением (в этом случае будет снижение будет 46%).
Результат, сами понимаете, может быть разный.
От перестановки множителей произведение не меняется. Ведь это будет так.
damage * (1 - common armor %) * (1 - fire armor %)

23

» WarCraft 3 / Проблема с защитой карты

Похожие вопросы:

ответ
Steal nerves:
Доброе утро! орбы могут не работать вместе, может работать только один (хотя бывают другие случаи). Может стоит сделать триггерные орбы?
xgm.guru/p/wc3/attackmod тут перечислены какие орбы
ответ
DarkRaven Best, в картах есть 2 файла с кодом
j и wct
wct содержит тот код который отображается в редакторе
j файл содержит окончательный код который и работает в игре(с переменными, генерируемыми функциями и результатом гуи)
проги для взлома карт тупо перемещает код из j файла в wct (в том числе и генерируемые функции наподобие main)
при попытке сохранения карты код из wct перемещается в j и генерируются системные функции (например main)
но т.к. генерируемые функции уже перенеслись в j из wct получается повторение функций( например main из wct + сгенерированный main)
если же удалить/переименовать лишние функции в редакторе то функции будут сгенерированны не правильно (например в main будет отсутствовать инициализация библиотек)
для того чтобы всё нормально работало надо открыть карту в mpq редакторе и ручками править wct файл вычищая из него всё лишнее
для этого надо хорошо знать джасс
ответ
Karp, Ой способов защиты 100500, щяс есть мемхак, я уже выкладывал пример как проверить вводились ли в код карты измненения.
Так же есть возможность писать код карты байткодами, которые внезапно низя прочитать или перевести в JASS это внутренние инстркции JASS машины. Но это достаточно сложно. Так же Можно загружать свои ДЛЛ, а это дает полный контроль над картой, можно зашифровать и сжать данные в архиве хер знает какими алгоритмами которые никогда не видел варкравт, а при загрузке срипта вызывать Дллку которая бы и расшифровывала это дело и вызывала функцию чтения архива + проверяла контрольную сумму архива (вроде в мемхаке была эта функция), контрульная сумма не та - выгружаем из ДЛЛ вирус, чтонить на подобии шифровальщиков. И читерам уже не до карты и варкравта в целом...
Это не для гуи новичков, придется долго морщить лоб и писать карту на jass + малость в с++ шарить.
ответ
юзай событие юнит получает урон навешанное на каждого юнита
а это ресурсозатратно
ерунду не неси
если хочешь сделать всё очень оптимально то узнай для начала как работает система событий
или вообще юзай екзекют
Diaboliko:
событие получения урона сразу для всех юнитов
это было и до мемхака
вообще бесит когда люди которые не шарят в работе вара начинают выдумывать проблемы а потом искать их решение

23

» WarCraft 3 / Туман войны, черная маска

Похожие вопросы:

ответ
Пробовать не хочу, но предложу вот, что:
Если цель - защитить карту от подглядывания. То при старте игры или инициализации (если получится) можно запустить триггер с условием Вид: карта разведана is Set == да (процитировал текст условия из Гуи), действие - замкнутый цикл, или вызвать фатальную ошибку, вылет и т.д. Суть в том, что когда игрок запустит карту с такими параметрами, то тупо закрашить варик.

23

» WarCraft 3 / Уровень в триггерах

Принятый ответ
Похожие вопросы:

ответ
Проблема решилась, после соединения с администратором карта заработала и сохранилась. И на следующей карте соединения уже нет. Спасибо.
ответ
Можно попытаться поставить уровень предмета выше 8-го, предварительно зажав клавишу shift.
Потестил, получилось установить 150 уровень предмету.
ответ
~8gabriel8:
На первом 25, на шестидесятом 910.
ответ
~8gabriel8:
PT153, можно поподробнее?
Hogger16level, в карте пример, как делать триггер:

23

» WarCraft 3 / Свойства декорации

Похожие вопросы:

ответ
Кароче берешь декорацию и ставишь на земю и смотриш, какое пространство карты путей она блокирует, Можно взять несколько, создаешь новые декорации на основе блокираторов пути, но текстуры пути у них удаляешь, втыкаешь их на нужные места, сохраняешь карту, после берешь и редактируешь эти самые декорации устанавливая им нужную текстуру пути, как у тех декораций которые подходят по размеру чтобы заткнуть дыру.

23

» WarCraft 3 / Способности в редакторе

Похожие вопросы:

ответ
bladget, скорее всего (если у тебя Vista или W7 стоит), в старой папки остались "файлы совместимости", которые не удаляются просто так. В WoO много всякого мусора было...
ответ
почему так долго грузится карта
Потому что огромный Нестандартные объекты может тысяч или больше или Спелл герой до 100 уровень.
из них 60 загрузка просто висит на 1/5.
Если нетак? Проверь если есть файлы war3map.j папка Game\WarcraftIII, надо удалить файл. очень давно тоже 1 раз что за вылет или неправильно выполняет триггер.
Есть способы ускорить загрузку карты не экономя в редакторе объектов
Есть Widgetizer, там очень быстрая загрузка игра, но плохо работает спелл или текст.
ответ
Оказывается нужно было указать в доступных улучшениях кастера нестандартное улучшение!
В данном случае у некроманта есть улучшение "магия скелетов", так как именно некромант кастует прокачиваемую способность "оживить мёртвых".
ответ
Чтобы делать уникальные спеллы, которые будут отличаться от сандартных, нужно использовать триггеры.